package com.ptp.backendcertms.basiccompnents.data.dao.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ptp.backendcertms.basiccompnents.data.dao.entity.CertificatePo;

/**
 * 证书表 服务类
 */
public interface ICertificateService extends IService<CertificatePo> {


    IPage<CertificatePo> pageList(CertificatePo queryPo, Integer current, Integer pageSize);


    CertificatePo queryByCertNo(String certNo);

    /**
     * 保存或更新证书信息
     *
     * @param certPo 证书信息
     */
    void saveOrUpdateCertificateInfo(CertificatePo certPo);

    /**
     * 管理端分页查询证书列表
     *
     * @param queryPo        查询条件（组织名称、统一社会信用代码、证书编号、证书状态）
     * @param dueStartDate   证书到期开始日期
     * @param dueEndDate     证书到期结束日期
     * @param issueStartDate 证书颁证开始日期
     * @param issueEndDate   证书颁证结束日期
     * @param current        当前页码
     * @param pageSize       每页数据量
     * @return 证书列表
     */
    IPage<CertificatePo> pageListMc(CertificatePo queryPo, String dueStartDate, String dueEndDate, String issueStartDate, String issueEndDate, Integer current, Integer pageSize);

    /**
     * 根据流水号查询证书信息
     *
     * @param serialNo 流水号
     * @return 证书信息
     */
    CertificatePo queryBySerialNo(String serialNo);

    /**
     * 证书删除
     * @param updatePo 请求参数
     */
    void deleteBySerialNo(CertificatePo updatePo);

    /**
     * 证书信息更新
     * @param updatePo 请求参数
     */
    void updateCertificate(CertificatePo updatePo);
}
